package com.ynet.middleground.user.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @program: 2019-10-12_userCenter
 * @description: 修改角色信息请求
 * @author: DaiGaoLe
 * @create: 2019-10-28 19:52
 **/
@Data
@ApiModel(value = "自然人用户信息", description = "自然人用户信息")
public class ChangeUserInfoNaturalPersonBase implements Serializable {
    private static final long serialVersionUID = 4057696139825970559L;
    /*  naturalPersonBaseInformation begin */
    /**
     * 性别(1-未知的性别,2-男性,3-女性,9-未说明的性别)
     */
    @ApiModelProperty(value = "性别(1-未知的性别,2-男性,3-女性,9-未说明的性别)", notes = "性别(1-未知的性别,2-男性,3-女性,9-未说明的性别)", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 1, max = 1, message = "字段长度为1")
    private String gender;

    /**
     * 本单位工作年限
     */
    @ApiModelProperty(value = "本单位工作年限", notes = "本单位工作年限", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 1, max = 2, message = "字段长度为2")
    private String workingYears;

    /**
     * 单位地址
     */
    @ApiModelProperty(value = "单位地址", notes = "单位地址", dataType = "String")
    private String unitAddress;

    /**
     * 单位名称
     */
    @ApiModelProperty(value = "单位名称", notes = "单位名称", dataType = "String")
    private String entityName;

    /**
     * 单位性质
     */
    @ApiModelProperty(value = "单位性质", notes = "单位性质", dataType = "String")
    private String unitNature;

    /**
     * 个人年收入
     */
    @ApiModelProperty(value = "个人年收入", notes = "个人年收入", dataType = "java.math.BigDecimal")
    private BigDecimal personalAnnualIncome;

    /**
     * 个人身份证明(影像资料)
     */
    @ApiModelProperty(value = "个人身份证明(影像资料)", notes = "个人身份证明(影像资料)", dataType = "String")
    private String personalIdentificationUrl;

    /**
     * 工资发放日
     */
    @ApiModelProperty(value = "工资发放日", notes = "工资发放日", dataType = "Date")
    private Date payDay;

    /**
     * 婚姻状况，0-已婚,1-未婚
     */
    @ApiModelProperty(value = "婚姻状况:0-已婚,1-未婚", notes = "婚姻状况:0-已婚,1-未婚", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 1, max = 1, message = "字段长度为1")
    private String maritalStatus;

    /**
     * 家庭住址
     */
    @ApiModelProperty(value = "家庭住址", notes = "家庭住址", dataType = "String")
    private String homeAddress;

    /**
     * 居住状况
     */
    @ApiModelProperty(value = "居住状况", notes = "居住状况", dataType = "String")
    private String livingConditions;

    /**
     * 民族
     */
    @ApiModelProperty(value = "民族", notes = "民族", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    private String nation;

    /**
     * 配偶姓名
     */
    @ApiModelProperty(value = "配偶姓名", notes = "配偶姓名", dataType = "String")
    private String spouseName;

    /**
     * 配偶证件类型
     */
    @ApiModelProperty(value = "配偶证件类型(证件种类,00-统一社会信用代码,01-组织机构代码证,02-营业执照,03-税务登记证,04-身份证,05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证;)", notes = "配偶证件类型(证件种类,00-统一社会信用代码,01-组织机构代码证,02-营业执照,03-税务登记证,04-身份证,05-护照，06-香港通行证，07-澳门通行证，08-台湾居民来往大陆通行证;)", dataType = "String")
    @Pattern(regexp = "^[\\x01-\\x7f]*$", message = "不能有中文字符")
    @Size(min = 2, max = 2, message = "长度为2")
    private String spouseCertificateType;

    /**
     * 配偶证件号码
     */
    @ApiModelProperty(value = "配偶证件号码", notes = "配偶证件号码", dataType = "String")
    private String spouseCertificateNo;

    /**
     * 配偶手机号码
     */
    @ApiModelProperty(value = "配偶手机号码", notes = "配偶手机号码", dataType = "String")
    private String spouseTelephone;

    /**
     * 收入来源
     */
    @ApiModelProperty(value = "收入来源", notes = "收入来源", dataType = "String")
    private String incomeSource;

    /**
     * 银行卡信息(影像资料)
     */
    @ApiModelProperty(value = "银行卡信息(影像资料)", notes = "银行卡信息(影像资料)", dataType = "String")
    private String bankCardInfoUrl;

    /**
     * 银行开户行
     */
    @ApiModelProperty(value = "银行开户行", notes = "银行开户行", dataType = "String")
    private String bankOpenBank;

    /**
     * 证书类型
     */
    @ApiModelProperty(value = "证书类型", notes = "证书类型", dataType = "String")
    private String certificatesforType;

    /**
     * 职业
     */
    @ApiModelProperty(value = "职业", notes = "职业", dataType = "String")
    private String occupation;
    /*  naturalPersonBaseInformation end */
}
